/*
 * @description: 
 * @Author: Islands
 * @Date: 2024-06-24 00:02:33
 * @LastEditTime: 2024-06-24 16:37:12
 */
import { doHttp, doDelete, doGet, doPath, doPost } from '@/plugins/axios/index';
import { IQuery } from '@/api/types/index';
//分页查询对象
export interface IMenuSearch extends IQuery {
    /** 菜单名称 */
    name?: string,
    /** 菜单状态 */
    enabled?: number
}
// 分页模糊产查询返回对象
export interface IResultPage extends IQuery{
    records?: Array<IMenu>
}
//菜单业务对象
export type IMenu = {
    /** 主键ID */
    id?: string | number,
    /** 版本号 */
    revision?: number,
    /** 状态 */
    enabled?: number,
    /** 菜单父级Id */
    parentId?: string | number,
    /** 企业Id */
    companyId?: string | number,
    /** 名称 */
    title?: string,
    /** 国际化Key */
    locale?: string,
    /** 图标 */
    icon?: string,
    /** 类型 */
    type?: string,
    /** 路由地址 */
    path?: string,
    /** 重定向地址 */
    redirect?: string,
    /** 组件路径 */
    component?: string,
    /** 隐藏菜单 */
    visible?: boolean,
    /** 排序 */
    sort?: number,
    /** 子对象 */
    children?: Array<IMenu>
}



enum Api {
    query = "../../../../mock/system/queryMenu.json",
    details = '../../../../mock/system/detailsMenu.json'
}

//模糊查询
export function apiQuery(search: IMenuSearch): any {
    return doGet(Api.query, search);
}
//详情
export function apiDetails(id: number): any {
    return doGet(Api.details, { id: id });
}
//单个删除
export function apiDelete(id: number): any {
    return doDelete(Api.query, id);
}
//批量删除
export function apiDeleteBatch(ids: Array<any>): any {
    return doDelete(Api.query, ids);
}